[INFO] cloning repository https://github.com/beshubh/effective-rust-book
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/beshubh/effective-rust-book" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeshubh%2Feffective-rust-book", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeshubh%2Feffective-rust-book'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a043bf759e0ef857cf34c8e5c4fa1a0c1c9ea065
[INFO] fixing beshubh/effective-rust-book against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeshubh%2Feffective-rust-book" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/beshubh/effective-rust-book
[INFO] finished tweaking git repo https://github.com/beshubh/effective-rust-book
[INFO] tweaked toml for git repo https://github.com/beshubh/effective-rust-book written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/beshubh/effective-rust-book on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/beshubh/effective-rust-book already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded relative-path v1.9.3
[INFO] [stderr]   Downloaded rstest v0.23.0
[INFO] [stderr]   Downloaded rstest_macros v0.23.0
[INFO] [stderr]   Downloaded mockall v0.13.1
[INFO] [stderr]   Downloaded toml_datetime v1.1.0+spec-1.1.0
[INFO] [stderr]   Downloaded mockall_derive v0.13.1
[INFO] [stderr]   Downloaded toml_parser v1.1.0+spec-1.1.0
[INFO] [stderr]   Downloaded toml_edit v0.25.8+spec-1.1.0
[INFO] [stderr]   Downloaded winnow v1.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad
[INFO] running `Command { std: "docker" "start" "3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]    Compiling winnow v1.0.0
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling toml_datetime v1.1.0+spec-1.1.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]     Checking predicates-core v1.0.10
[INFO] [stderr]    Compiling mockall_derive v0.13.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]     Checking predicates-tree v1.0.13
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]    Compiling rstest_macros v0.23.0
[INFO] [stderr]     Checking fragile v2.0.1
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking predicates v3.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling toml_parser v1.1.0+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.8+spec-1.1.0
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking mockall v0.13.1
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking rstest v0.23.0
[INFO] [stderr]     Checking effective-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected expression, found `+`
[INFO] [stdout]    --> src/msft_rust_training/data_structures.rs:109:59
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 *word_count.entry(word).or_insert(0) += 1;+
[INFO] [stdout]     |                                                           ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `+`
[INFO] [stdout]    --> src/msft_rust_training/data_structures.rs:109:59
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 *word_count.entry(word).or_insert(0) += 1;+
[INFO] [stdout]     |                                                           ^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `users` in this scope
[INFO] [stdout]   --> src/msft_rust_training/errors.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         users.get(&user_id).cloned().ok_or(AppError::NotFound {
[INFO] [stdout]    |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `fs` in this scope
[INFO] [stdout]   --> src/msft_rust_training/errors.rs:33:20
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let data = fs::read_to_string(path)?; // io::Error → AppError::Io automatically
[INFO] [stdout]    |                    ^^ use of unresolved module or unlinked crate `fs`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `fs`, use `cargo add fs` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  2 +     use std::fs;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0573]: expected type, found crate `std`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:88:61
[INFO] [stdout]    |
[INFO] [stdout] 88 |         fn greet_with_default(name: &str, greeting: Option<&std>) -> String {
[INFO] [stdout]    |                                                             ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 88 -         fn greet_with_default(name: &str, greeting: Option<&std>) -> String {
[INFO] [stdout] 88 +         fn greet_with_default(name: &str, greeting: Option<&str>) -> String {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/msft_rust_training/data_structures.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |         use core::num;
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         use std::fmt::format;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/msft_rust_training/errors.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use std::collections::HashMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         use core::num;
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `users` in this scope
[INFO] [stdout]   --> src/msft_rust_training/errors.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |         users.get(&user_id).cloned().ok_or(AppError::NotFound {
[INFO] [stdout]    |         ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `fs` in this scope
[INFO] [stdout]   --> src/msft_rust_training/errors.rs:33:20
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let data = fs::read_to_string(path)?; // io::Error → AppError::Io automatically
[INFO] [stdout]    |                    ^^ use of unresolved module or unlinked crate `fs`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `fs`, use `cargo add fs` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout]  2 +     use std::fs;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0573]: expected type, found crate `std`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:88:61
[INFO] [stdout]    |
[INFO] [stdout] 88 |         fn greet_with_default(name: &str, greeting: Option<&std>) -> String {
[INFO] [stdout]    |                                                             ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: a builtin type with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 88 -         fn greet_with_default(name: &str, greeting: Option<&std>) -> String {
[INFO] [stdout] 88 +         fn greet_with_default(name: &str, greeting: Option<&str>) -> String {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/msft_rust_training/data_structures.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 |         use core::num;
[INFO] [stdout]   |             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         use std::fmt::format;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/msft_rust_training/errors.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use std::collections::HashMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         use core::num;
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `msft_rust_training::errors::errors::User: serde::Deserialize<'de>` is not satisfied
[INFO] [stdout]     --> src/msft_rust_training/errors.rs:34:32
[INFO] [stdout]      |
[INFO] [stdout]   34 |         let users: Vec<User> = serde_json::from_str(&data)?; // → AppError::Json
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `serde::Deserialize<'_>` is not implemented for `msft_rust_training::errors::errors::User`
[INFO] [stdout]     --> src/msft_rust_training/errors.rs:20:5
[INFO] [stdout]      |
[INFO] [stdout]   20 |     struct User {
[INFO] [stdout]      |     ^^^^^^^^^^^
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `msft_rust_training::errors::errors::User` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `serde::Deserialize<'de>`:
[INFO] [stdout]                &'a Path
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]              and 141 others
[INFO] [stdout]      = note: required for `Vec<msft_rust_training::errors::errors::User>` to implement `serde::Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `serde_json::from_str`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs:2701:8
[INFO] [stdout]      |
[INFO] [stdout] 2699 | pub fn from_str<'a, T>(s: &'a str) -> Result<T>
[INFO] [stdout]      |        -------- required by a bound in this function
[INFO] [stdout] 2700 | where
[INFO] [stdout] 2701 |     T: de::Deserialize<'a>,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `msft_rust_training::errors::errors::User: serde::Deserialize<'de>` is not satisfied
[INFO] [stdout]     --> src/msft_rust_training/errors.rs:34:32
[INFO] [stdout]      |
[INFO] [stdout]   34 |         let users: Vec<User> = serde_json::from_str(&data)?; // → AppError::Json
[INFO] [stdout]      |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `serde::Deserialize<'_>` is not implemented for `msft_rust_training::errors::errors::User`
[INFO] [stdout]     --> src/msft_rust_training/errors.rs:20:5
[INFO] [stdout]      |
[INFO] [stdout]   20 |     struct User {
[INFO] [stdout]      |     ^^^^^^^^^^^
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `msft_rust_training::errors::errors::User` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `serde::Deserialize<'de>`:
[INFO] [stdout]                &'a Path
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]              and 141 others
[INFO] [stdout]      = note: required for `Vec<msft_rust_training::errors::errors::User>` to implement `serde::Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `serde_json::from_str`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/de.rs:2701:8
[INFO] [stdout]      |
[INFO] [stdout] 2699 | pub fn from_str<'a, T>(s: &'a str) -> Result<T>
[INFO] [stdout]      |        -------- required by a bound in this function
[INFO] [stdout] 2700 | where
[INFO] [stdout] 2701 |     T: de::Deserialize<'a>,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zeroes`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let zeroes = [0; 10]; // initialize with all same elements
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_zeroes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 |             let slice: &[i32] = &numbers[1..4];
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_three`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |             let first_three = &data[..3]; // &[i32] view
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_three`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_two`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             let last_two = &data[3..];
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_two`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |             let last_two = &data[data.len() - 2..];
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reversed`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let reversed = data.iter().rev().collect::<Vec<&i32>>();
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reversed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reversed_copy`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let reversed_copy: Vec<i32> = data.iter().rev().copied().collect();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reversed_copy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emtpy`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let emtpy: Vec<i32> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_emtpy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeated`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let repeated = vec![0; 10];
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repeated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from_range`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 |             let from_range: Vec<i32> = (0..10).collect();
[INFO] [stdout]    |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let last = numbers.pop();
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_last`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contains`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let contains = numbers.contains(&10);
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contains`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |             let index = numbers.iter().position(|&x| x == 3);
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]  --> src/msft_rust_training/ownership.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |         let s2 = s1; // s1 is MOVED
[INFO] [stdout]   |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let s2 = s1.clone();
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/msft_rust_training/usafe.rs:70:34
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let result = fetch_user_name(mock, 1);
[INFO] [stdout]    |                  --------------- ^^^^ expected `&dyn Database`, found `MockDatabase`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&dyn Database`
[INFO] [stdout]                  found struct `MockDatabase`
[INFO] [stdout] note: function defined here
[INFO] [stdout]   --> src/msft_rust_training/usafe.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn fetch_user_name(db: &dyn Database, id: i64) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^ -----------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let result = fetch_user_name(&mock, 1);
[INFO] [stdout]    |                                  +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |             let boxed = Box::new(42);
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clone1`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let clone1 = Rc::clone(&shared); // increment ref counting
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clone2`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let clone2 = Rc::clone(&shared); // increment ref counting
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_safe`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let thread_safe = Arc::new(vec![1, 2, 3]);
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_safe`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 |             let upper = name.to_uppercase();
[INFO] [stdout]   |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contains`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |             let contains = name.contains("lic");
[INFO] [stdout]   |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contains`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |             let parts = "a,b,c".split(",").collect::<Vec<&str>>();
[INFO] [stdout]   |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `joined`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |             let joined = ["a", "b", "c"].join("-");
[INFO] [stdout]   |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_joined`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stripped`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let stripped = "   Hello  ".trim(); // Hello
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stripped`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `replaced`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |             let replaced = name.replace("a", "A"); // alice -> Alice
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_replaced`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `squares`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let squares = (0..10).map(|x| x * x).collect::<Vec<i32>>();
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_squares`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evens`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let evens = (0..20).filter(|num| num % 2 == 0).collect::<Vec<i32>>();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_evens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pairs`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 |             let pairs = (0..3)
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pairs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             let result = if 10 % 2 == 0 { "yes" } else { "no" };
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let value = {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:72:17
[INFO] [stdout]    |
[INFO] [stdout] 72 |             let description = match temprature {
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/types.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let y = x as u64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/types.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let z: u64 = x.into();
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/types.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let j = i as u32; // lossy conversion
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/types.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let y = x as u16;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zeroes`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let zeroes = [0; 10]; // initialize with all same elements
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_zeroes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 |             let slice: &[i32] = &numbers[1..4];
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_three`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |             let first_three = &data[..3]; // &[i32] view
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_three`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_two`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             let last_two = &data[3..];
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0425, E0433, E0573.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last_two`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |             let last_two = &data[data.len() - 2..];
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reversed`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let reversed = data.iter().rev().collect::<Vec<&i32>>();
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reversed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reversed_copy`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let reversed_copy: Vec<i32> = data.iter().rev().copied().collect();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reversed_copy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `emtpy`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let emtpy: Vec<i32> = Vec::new();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_emtpy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeated`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let repeated = vec![0; 10];
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repeated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from_range`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:31:17
[INFO] [stdout]    |
[INFO] [stdout] 31 |             let from_range: Vec<i32> = (0..10).collect();
[INFO] [stdout]    |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let last = numbers.pop();
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_last`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contains`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let contains = numbers.contains(&10);
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contains`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/msft_rust_training/data_structures.rs:46:17
[INFO] [stdout]    |
[INFO] [stdout] 46 |             let index = numbers.iter().position(|&x| x == 3);
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]  --> src/msft_rust_training/ownership.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |         let s2 = s1; // s1 is MOVED
[INFO] [stdout]   |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let s2 = s1.clone();
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `effective-rust` (bin "effective-rust") due to 5 previous errors; 39 warnings emitted
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |             let boxed = Box::new(42);
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `clone1`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let clone1 = Rc::clone(&shared); // increment ref counting
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clone2`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 |             let clone2 = Rc::clone(&shared); // increment ref counting
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_safe`
[INFO] [stdout]   --> src/msft_rust_training/ownership.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             let thread_safe = Arc::new(vec![1, 2, 3]);
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_safe`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upper`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 |             let upper = name.to_uppercase();
[INFO] [stdout]   |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_upper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contains`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |             let contains = name.contains("lic");
[INFO] [stdout]   |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contains`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |             let parts = "a,b,c".split(",").collect::<Vec<&str>>();
[INFO] [stdout]   |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `joined`
[INFO] [stdout]  --> src/msft_rust_training/types.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |             let joined = ["a", "b", "c"].join("-");
[INFO] [stdout]   |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_joined`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stripped`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |             let stripped = "   Hello  ".trim(); // Hello
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stripped`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `replaced`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 |             let replaced = name.replace("a", "A"); // alice -> Alice
[INFO] [stdout]    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_replaced`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `squares`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:54:17
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let squares = (0..10).map(|x| x * x).collect::<Vec<i32>>();
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_squares`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evens`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let evens = (0..20).filter(|num| num % 2 == 0).collect::<Vec<i32>>();
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_evens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pairs`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:56:17
[INFO] [stdout]    |
[INFO] [stdout] 56 |             let pairs = (0..3)
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_pairs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             let result = if 10 % 2 == 0 { "yes" } else { "no" };
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let value = {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `description`
[INFO] [stdout]   --> src/msft_rust_training/types.rs:72:17
[INFO] [stdout]    |
[INFO] [stdout] 72 |             let description = match temprature {
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_description`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_be_empty`
[INFO] [stdout]   --> src/types.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let can_be_empty = Option::Some("haystack".to_string());
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_be_empty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]   --> src/types.rs:40:22
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn print_bad(color: bool, black_and_white: bool) {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `black_and_white`
[INFO] [stdout]   --> src/types.rs:40:35
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn print_bad(color: bool, black_and_white: bool) {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_black_and_white`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `side`
[INFO] [stdout]   --> src/types.rs:52:23
[INFO] [stdout]    |
[INFO] [stdout] 52 |         fn print_good(side: Sides, color: Color) {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_side`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/types.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let file = match result {
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/types.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |         let result = std::fs::File::open("foo.txt").unwrap();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `username`
[INFO] [stdout]    --> src/types.rs:172:22
[INFO] [stdout]     |
[INFO] [stdout] 172 |         fn find_user(username: &str) -> Result<String, String> {
[INFO] [stdout]     |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/types.rs:173:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let f = std::fs::File::open("users.db")
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/types.rs:178:20
[INFO] [stdout]     |
[INFO] [stdout] 178 |         fn encrypt(payload: &[u8]) -> Vec<u8> {
[INFO] [stdout]     |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `username`
[INFO] [stdout]    --> src/types.rs:212:26
[INFO] [stdout]     |
[INFO] [stdout] 212 |         pub fn find_user(username: &str) -> Result<String, MyError> {
[INFO] [stdout]     |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/types.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |             let f = std::fs::File::open("/etc/passwd")
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/types.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let y = x as u64;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/types.rs:330:13
[INFO] [stdout]     |
[INFO] [stdout] 330 |         let z: u64 = x.into();
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/types.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let j = i as u32; // lossy conversion
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/types.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let y = x as u16;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0433, E0573.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `effective-rust` (bin "effective-rust" test) due to 6 previous errors; 50 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad", kill_on_drop: false }`
[INFO] [stdout] 3ca2daec017c2e97fb410bbb871a5d1ce72458d203b263f7189f65a901a55aad
